const util = require('../../../utils/util')
const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    APP_OSSURL_API: app.APP_OSSURL_API,
    paizhaoImageUrl: "/dinnerBar/canyin/canyin-weixuanzezhifufangshi.png",
    xiangceImageUrl: "/dinnerBar/fabu/xiangce.png",
    lvjingImageUrl: "/dinnerBar/fabu/lvjing.png",
    oneImageUrl: "/dinnerBar/fabu/one.png",
    twoImageUrl: "/dinnerBar/fabu/two.png",
    threeImageUrl: "/dinnerBar/fabu/three.png",
    fourImageUrl: "/dinnerBar/fabu/four.png",
    fiveImageUrl: "/dinnerBar/fabu/five.png",
    sixImageUrl: "/dinnerBar/fabu/six.png",
    menuTop: 20,
    imageSrc: '',//图片url
    videoSrc: '',//视频url
    zoom:1,
    aspectRatio:0.75,
    devicePosition:"back",
    deviceWidth:app.globalData.windowWidth
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(app.globalData)
    let _capsule = wx.getMenuButtonBoundingClientRect()
    this.setData({
      menuTop:_capsule.top,
      menuHeight:_capsule.height,
      menuLeft:_capsule.left
    })
    this.ctx = wx.createCameraContext();
    this.setData({
      type: options.type
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.setData({
      imageSrc: '',
      videoSrc: ''
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  
  /**
   * 取消拍照
   */
  cancelShoot() {
    wx.navigateBack({
      delta: 1,
    })
  },
  setZoom(){
    this.setData({
      zoom:this.data.zoom==1?2:1
    })
    this.ctx.setZoom({
      zoom:this.data.zoom
    })
  },
  setAspectRatio(){
    this.setData({
      aspectRatio:this.data.aspectRatio==0.75?1:0.75
    })
  },
  setDevicePosition(){
    this.setData({
      devicePosition:this.data.devicePosition=="font"?"back":"font"
    })
  },


  /**
   *拍照的方法 
   */
  takePhoto() {
    this.ctx.takePhoto({
      quality: 'high',
      success: (res) => {
        this.setData({
          imageSrc: res.tempImagePath,
          thumbSrc: res.tempImagePath
        })
        this.toPublish('img', this.data.imageSrc, this.data.thumbSrc)
      },
      fail() {
        //拍照失败
        console.log("拍照失败");
      }
    })
  },

  /**
   * 开始录像的方法
   */
  startShootVideo() {

    console.log("========= 调用开始录像 ===========")
    this.ctx.startRecord({
      success: (res) => {
        wx.showLoading({
          title: '正在录像',
        })
      },
      fail() {
        console.log("========= 调用开始录像失败 ===========")
      }
    })
  },

  /**
   * 结束录像
   */
  stopShootVideo() {

    console.log("========= 调用结束录像 ===========")
    this.ctx.stopRecord({
      success: (res) => {
        wx.hideLoading();
        this.setData({
          videoSrc: res.tempVideoPath,
          thumbSrc: res.tempThumbPath
        })
        this.toPublish('video', this.data.videoSrc, this.data.thumbSrc)
      },
      fail() {
        wx.hideLoading();
        console.log("========= 调用结束录像失败 ===========")
      }
    })
  },

  //touch start 手指触摸开始
  handleTouchStart: function (e) {
    this.startTime = e.timeStamp;
    // console.log(" startTime = " + e.timeStamp);
    // console.log(" 手指触摸开始 ", e);
    // console.log(" this ", this);
  },

  //touch end 手指触摸结束
  handleTouchEnd: function (e) {
    this.endTime = e.timeStamp;    
    if(this.data.type != 'video'){
      return 
    }  
    // console.log(" endTime = " + e.timeStamp);
    // console.log(" 手指触摸结束 ", e);
    //判断是点击还是长按 点击不做任何事件，长按 触发结束录像
    if (this.endTime - this.startTime > 350) {
      //长按操作 调用结束录像方法
      this.stopShootVideo();
    } else {
      wx.showToast({
        icon: 'none',
        title: '视频拍摄时间太短！',
      })
    }

  },

  /**
   * 点击按钮 - 拍照
   */
  handleClick: function (e) {
    if(this.data.type != 'img'){
      return 
    }
    // console.log("endTime - startTime = " + (this.endTime - this.startTime));
    if (this.endTime - this.startTime < 350 ) {
      console.log("点击");
      //调用拍照方法
      this.takePhoto();
    }
  },

  /**
   * 长按按钮 - 录像
   */
  handleLongPress: function (e) {
    if(this.data.type != 'video'){
      return 
    }
    // console.log("endTime - startTime = " + (this.endTime - this.startTime));
    // console.log("长按");
    // 长按方法触发，调用开始录像方法
    this.startShootVideo();
  },
  toPublish: function (type, filePath, thumbSrc) {
    this.getOpenerEventChannel().emit('getMedia', { type: type, filePath: filePath, thumbSrc: thumbSrc });
    wx.navigateBack({ delta: 1 })
  }
})


